package com.example.myapplication.kotlin

/*
mutableListOf 声明一个可变的集合
  支持添加/删除/修改元素
  由于是可变的所以多线程下修改操作需要额外同步机制才能保证线程安全
  常用场景=>存储需要修改的数据,但是内存开销稍大
*/
fun main() {
    // 定义可变的List
    var zaoFood = mutableListOf("肠粉", "茶叶蛋", "油条", "豆汁", "炒肝", "炒粉")

    // 取值
    println(zaoFood[4])

    // 获取zaoFood的长度
    val length = zaoFood.size // 结果6
    println(zaoFood[zaoFood.size - 3]) // 豆汁

    // 改值
    zaoFood[0] = "牛肉粿条"
    println(zaoFood)
    
    // 添加元素
    zaoFood.add("炒饭") // 默认添加到末尾

    // Kotlin中没有addFirst方法，应使用add(0, element)在开头添加
    zaoFood.add(0, "炒面") // 在开始添加

    // 删除豆汁
    zaoFood.remove("豆汁")

    // 如果有炒肝就删除使用removeIf来实现
    zaoFood.removeIf { it == "炒肝" }

    println(zaoFood)
}

